/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * DatosFarmacologicoPanel.java
 *
 * Created on 20-sep-2010, 9:44:39
 */

package presentacion.paciente;

import com.toedter.calendar.IDateEditor;
import hibernate.objeto.AntecedenteFamiliar;
import hibernate.objeto.AntecedentePersonal;
import hibernate.objeto.Cie9mc;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Date;
import javax.swing.JDialog;
import javax.swing.JPanel;
import logica.validacion.CapaValidacion;
import presentacion.CapaPresentacion;
import presentacion.acceso.RestriccionAcceso;
import presentacion.cie9mc.GestionCie9mcPresentacion;
import presentacion.utilidad.maquetado.Fuente;
import presentacion.utilidad.maquetado.Icono;
import presentacion.utilidad.maquetado.InformeError;

/**
 *
 * @author Administrador
 */
public class DatosAntecedentesEnfermedadPanel extends javax.swing.JPanel {

    /** Creates new form DatosAntecedentesEnfermedad */
    /**
     *
     * @param objeto El objeto a crear (AntecedentePersonal o AntecedenteFamiliar)
     */
    public DatosAntecedentesEnfermedadPanel(Object objeto) {
        initComponents();
        personalizarJPanel(objeto);
        setearEventosQueCapturanTeclaEnterYEscape();
    }

    private void personalizarJPanel(Object objeto) {
        if (objeto instanceof AntecedentePersonal ||
                objeto instanceof Cie9mc) {
            textoParentezcoEnfermedad.setVisible(false);
            parentezcoEnfermedad.setVisible(false);
        }

        if ((objeto instanceof AntecedentePersonal &&
                ((AntecedentePersonal) objeto).getCie9mc() == null) ||
                (objeto instanceof AntecedenteFamiliar &&
                ((AntecedenteFamiliar) objeto).getCie9mc() == null)) {
            botonVolver.setVisible(false);
        } else {
            exhibirDatosEnPantalla(objeto);
        }
    }

    /**
     * Exhibe los distintos datos cargados en la pantalla.
     *
     */
    private void exhibirDatosEnPantalla(Object objeto) {
        //Visualiza objeto antecedente personal
        if (objeto instanceof AntecedentePersonal) {
            inhabilitarCampos();
            //Fecha
            fechaEnfermedad.setDate(((AntecedentePersonal)
                    objeto).getFechaAntecedentePersonal());

            //Enfermedad
            cie9mcSeleccionado = ((AntecedentePersonal) objeto).getCie9mc();
            enfermedad.setText(((AntecedentePersonal) objeto).getCie9mc().getDetalleCie9mc());
            enfermedad.setToolTipText(enfermedad.getText());

            //Información Complementaria
            informacionComplementariaEnfermedad.setText(((AntecedentePersonal)
                    objeto).getInformacionComplementariaAntecedentePersonal());
            informacionComplementariaEnfermedad.setCaretPosition(0);

            //Otros Antecedentes
            otrosAntecedentesEnfermedad.setText(((AntecedentePersonal)
                    objeto).getOtrosAntecedentesAntecedentePersonal());
            otrosAntecedentesEnfermedad.setCaretPosition(0);

        //Visualiza objeto antecedente familiar
        } else if (objeto instanceof AntecedenteFamiliar) {
            inhabilitarCampos();
            botonQuitarEpisodioEnfermedad.setVisible(false);
            //Parentezco
            parentezcoEnfermedad.setSelectedIndex(
                    CapaPresentacion.getIndiceComboBoxPorString(
                    ((AntecedenteFamiliar) objeto).getVinculoAntecedenteFamiliar(),
                    parentezcoEnfermedad));

            //Fecha
            fechaEnfermedad.setDate(((AntecedenteFamiliar)
                    objeto).getFechaAntecedenteFamiliar());
            
            //Enfermedad
            cie9mcSeleccionado = ((AntecedenteFamiliar) objeto).getCie9mc();
            enfermedad.setText(((AntecedenteFamiliar) objeto).getCie9mc().getDetalleCie9mc());
            enfermedad.setToolTipText(enfermedad.getText());

            //Información Complementaria
            informacionComplementariaEnfermedad.setText(((AntecedenteFamiliar) 
                    objeto).getInformacionComplementariaAntecedenteFamiliar());
            informacionComplementariaEnfermedad.setCaretPosition(0);

            //Otros Antecedentes
            otrosAntecedentesEnfermedad.setText(((AntecedenteFamiliar) 
                    objeto).getOtrosAntecedentesAntecedenteFamiliar());
            otrosAntecedentesEnfermedad.setCaretPosition(0);
        }
    }

    /**
     * Pone en false la propiedad enabled de todos los campos de ingreso.
     *
     */
    private void inhabilitarCampos() {
        botonQuitarEpisodioEnfermedad.setVisible(false);

        parentezcoEnfermedad.setEnabled(false);
        fechaEnfermedad.setEnabled(false);
        botonEnfermedad.setEnabled(false);
        informacionComplementariaEnfermedad.setEnabled(false);
        otrosAntecedentesEnfermedad.setEnabled(false);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        botonVolver = new javax.swing.JButton();
        botonQuitarEpisodioEnfermedad = new javax.swing.JButton();
        parentezcoEnfermedad = new javax.swing.JComboBox();
        textoParentezcoEnfermedad = new javax.swing.JLabel();
        textoFechaEnfermedad = new javax.swing.JLabel();
        fechaEnfermedad = new com.toedter.calendar.JDateChooser();
        botonEnfermedad = new javax.swing.JButton();
        enfermedad = new javax.swing.JLabel();
        informacionComplementariaEnfermedadScrollPane = new javax.swing.JScrollPane();
        informacionComplementariaEnfermedad = new javax.swing.JTextArea();
        textoInformacionComplementariaEnfermedad = new javax.swing.JLabel();
        textoOtrosAntecedentesFamiliar = new javax.swing.JLabel();
        otrosAntecedentesEnfermedadScrollPane = new javax.swing.JScrollPane();
        otrosAntecedentesEnfermedad = new javax.swing.JTextArea();
        separadorEnfermedad = new javax.swing.JSeparator();

        setMaximumSize(new java.awt.Dimension(435, 240));
        setMinimumSize(new java.awt.Dimension(435, 240));

        botonVolver.setFont(Fuente.FUENTE_BOTON_INTERNO);
        botonVolver.setForeground(Fuente.COLOR_NORMAL);
        botonVolver.setIcon(Icono.ICONO_16_CANCELAR);
        botonVolver.setMnemonic('v');
        botonVolver.setText("Volver");
        botonVolver.setToolTipText("Vuelve a la ventana anterior");
        botonVolver.setPreferredSize(new java.awt.Dimension(110, 20));
        botonVolver.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonVolverActionPerformed(evt);
            }
        });

        botonQuitarEpisodioEnfermedad.setFont(Fuente.FUENTE_BOTON_INTERNO);
        botonQuitarEpisodioEnfermedad.setForeground(Fuente.COLOR_NORMAL);
        botonQuitarEpisodioEnfermedad.setIcon(Icono.ICONO_16_QUITAR);
        botonQuitarEpisodioEnfermedad.setMnemonic('q');
        botonQuitarEpisodioEnfermedad.setText("Quitar episodio");
        botonQuitarEpisodioEnfermedad.setToolTipText("Remueve este conjunto de datos");
        botonQuitarEpisodioEnfermedad.setPreferredSize(new java.awt.Dimension(135, 20));
        botonQuitarEpisodioEnfermedad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonQuitarEpisodioEnfermedadActionPerformed(evt);
            }
        });

        parentezcoEnfermedad.setFont(Fuente.FUENTE_COMBOBOX);
        parentezcoEnfermedad.setForeground(Fuente.COLOR_NORMAL);
        parentezcoEnfermedad.setModel(CapaPresentacion.getListaDeParentezco());
        parentezcoEnfermedad.setPreferredSize(new java.awt.Dimension(135, 20));

        textoParentezcoEnfermedad.setFont(Fuente.FUENTE_LABEL);
        textoParentezcoEnfermedad.setForeground(Fuente.COLOR_NORMAL);
        textoParentezcoEnfermedad.setText("Parentezco");
        textoParentezcoEnfermedad.setPreferredSize(new java.awt.Dimension(135, 20));

        textoFechaEnfermedad.setFont(Fuente.FUENTE_LABEL);
        textoFechaEnfermedad.setForeground(Fuente.COLOR_NORMAL);
        textoFechaEnfermedad.setText("Fecha");
        textoFechaEnfermedad.setPreferredSize(new java.awt.Dimension(135, 20));

        fechaEnfermedad.setMaxSelectableDate(new Date());
        fechaEnfermedad.setPreferredSize(new java.awt.Dimension(135, 20));

        botonEnfermedad.setFont(Fuente.FUENTE_BOTON_INTERNO);
        botonEnfermedad.setForeground(Fuente.COLOR_NORMAL);
        botonEnfermedad.setMnemonic('e');
        botonEnfermedad.setText("Enfermedad");
        botonEnfermedad.setToolTipText("Seleccione la enfermedad asociada según el estandar Cie9MC");
        botonEnfermedad.setPreferredSize(new java.awt.Dimension(135, 20));
        botonEnfermedad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonEnfermedadActionPerformed(evt);
            }
        });

        enfermedad.setFont(Fuente.FUENTE_LABEL);
        enfermedad.setForeground(Fuente.COLOR_NORMAL);
        enfermedad.setPreferredSize(new java.awt.Dimension(270, 20));

        informacionComplementariaEnfermedadScrollPane.setForeground(Fuente.COLOR_NORMAL);
        informacionComplementariaEnfermedadScrollPane.setPreferredSize(new java.awt.Dimension(270, 40));

        informacionComplementariaEnfermedad.setColumns(20);
        informacionComplementariaEnfermedad.setFont(Fuente.FUENTE_TEXTFIELD);
        informacionComplementariaEnfermedad.setLineWrap(true);
        informacionComplementariaEnfermedad.setRows(1);
        informacionComplementariaEnfermedad.setWrapStyleWord(true);
        informacionComplementariaEnfermedad.setPreferredSize(new java.awt.Dimension(270, 22));
        informacionComplementariaEnfermedadScrollPane.setViewportView(informacionComplementariaEnfermedad);

        textoInformacionComplementariaEnfermedad.setFont(Fuente.FUENTE_LABEL);
        textoInformacionComplementariaEnfermedad.setForeground(Fuente.COLOR_NORMAL);
        textoInformacionComplementariaEnfermedad.setText("Información complementaria");
        textoInformacionComplementariaEnfermedad.setPreferredSize(new java.awt.Dimension(135, 20));

        textoOtrosAntecedentesFamiliar.setFont(Fuente.FUENTE_LABEL);
        textoOtrosAntecedentesFamiliar.setForeground(Fuente.COLOR_NORMAL);
        textoOtrosAntecedentesFamiliar.setText("Otros antecedentes");
        textoOtrosAntecedentesFamiliar.setPreferredSize(new java.awt.Dimension(135, 20));

        otrosAntecedentesEnfermedadScrollPane.setForeground(Fuente.COLOR_NORMAL);
        otrosAntecedentesEnfermedadScrollPane.setPreferredSize(new java.awt.Dimension(270, 40));

        otrosAntecedentesEnfermedad.setColumns(20);
        otrosAntecedentesEnfermedad.setFont(Fuente.FUENTE_TEXTFIELD);
        otrosAntecedentesEnfermedad.setLineWrap(true);
        otrosAntecedentesEnfermedad.setRows(1);
        otrosAntecedentesEnfermedad.setWrapStyleWord(true);
        otrosAntecedentesEnfermedad.setPreferredSize(new java.awt.Dimension(270, 22));
        otrosAntecedentesEnfermedadScrollPane.setViewportView(otrosAntecedentesEnfermedad);

        separadorEnfermedad.setPreferredSize(new java.awt.Dimension(415, 2));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(textoInformacionComplementariaEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(textoOtrosAntecedentesFamiliar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(otrosAntecedentesEnfermedadScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(informacionComplementariaEnfermedadScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(textoFechaEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(fechaEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(botonEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(enfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(textoParentezcoEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(parentezcoEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(separadorEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(botonQuitarEpisodioEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(botonVolver, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(textoParentezcoEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(parentezcoEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(textoFechaEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(fechaEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(botonEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(enfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(textoInformacionComplementariaEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(informacionComplementariaEnfermedadScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(otrosAntecedentesEnfermedadScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(textoOtrosAntecedentesFamiliar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(separadorEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botonQuitarEpisodioEnfermedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botonVolver, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void botonVolverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonVolverActionPerformed
        cerrarVentana();
    }//GEN-LAST:event_botonVolverActionPerformed

    private void cerrarVentana() {
        JDialog jdialog = (JDialog)
                this.getParent().getParent().getParent().getParent();
        jdialog.dispose();
    }

    private void botonQuitarEpisodioEnfermedadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonQuitarEpisodioEnfermedadActionPerformed
        JPanel panelPadre = (JPanel) botonQuitarEpisodioEnfermedad.getParent().getParent();

        panelPadre.remove(botonQuitarEpisodioEnfermedad.getParent());
        panelPadre.revalidate();
        panelPadre.repaint();
}//GEN-LAST:event_botonQuitarEpisodioEnfermedadActionPerformed

    private void botonEnfermedadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonEnfermedadActionPerformed
        RestriccionAcceso.GestionCie9mcPresentacion(null, true, false, false);

        //Completa el campo con la enfermedad seleccioanda
        Cie9mc cie9mcSeleccionadoDeTabla =
                GestionCie9mcPresentacion.getCie9mcSeleccionado();

        //Setea la enfermedad seleccionada
        cie9mcSeleccionado = cie9mcSeleccionadoDeTabla;
        if(cie9mcSeleccionadoDeTabla != null){
            enfermedad.setText("(" +
                    cie9mcSeleccionadoDeTabla.getCodigoCie9mc() + ") " +
                    cie9mcSeleccionadoDeTabla.getDetalleCie9mc());
        }
        enfermedad.setToolTipText(enfermedad.getText());
}//GEN-LAST:event_botonEnfermedadActionPerformed

    /**
     * Valida en conjunto todos los campos. Aquellos que son obligatorios y los
     * que no.
     *
     * @return true si el objeto está listo para cargarse, false en caso
     * contrario
     */
    public boolean validarCampos() {
        boolean esParentezcoValida = validarCampoParentezco();
        boolean esFechaValida = validarCampoFecha();
        boolean esEnfermedadValida = validarCampoEnfermedad();

        return esParentezcoValida && esFechaValida && esEnfermedadValida;
    }

    /**
     * Valida los campos correspondiente al campo parentezco.
     *
     * @return true si los campos estan listos para cargarse, false en caso
     * contrario
     */
    private boolean validarCampoParentezco() {
        //Se valida este campo siempre y cuando se esté cargando un AntecedenteFamiliar
        if (parentezcoEnfermedad.isVisible()) {
            boolean retorno;

            if (!CapaValidacion.validarCampoObligatorio(
                    parentezcoEnfermedad.getSelectedItem().toString())) {
                textoParentezcoEnfermedad.setForeground(
                        Fuente.COLOR_ERROR);
                textoParentezcoEnfermedad.setToolTipText(InformeError.
                        INFORME_ERROR_DATOS_ANTECEDENTE_ENFERMEDAD_PARENTEZCO);
                retorno = false;
            } else {
                textoParentezcoEnfermedad.setForeground(Fuente.COLOR_NORMAL);
                textoParentezcoEnfermedad.setToolTipText(null);
                textoParentezcoEnfermedad.setToolTipText(null);
                retorno = true;
            }

            return retorno;
        } else {
            return true;
        }
    }

    /**
     * Valida los campos correspondiente al campo fecha.
     *
     * @return true si los campos estan listos para cargarse, false en caso
     * contrario
     */
    private boolean validarCampoFecha() {
        boolean retorno;

        if (!CapaValidacion.validarFecha(
                fechaEnfermedad.getDate(), null, true)) {
            textoFechaEnfermedad.setForeground(
                    Fuente.COLOR_ERROR);
            textoFechaEnfermedad.setToolTipText(InformeError.
                    INFORME_ERROR_USO_COMUN_FECHA);
            retorno = false;
        } else {
            textoFechaEnfermedad.setForeground(Fuente.COLOR_NORMAL);
            textoFechaEnfermedad.setToolTipText(InformeError.
                    INFORME_ERROR_USO_COMUN_FECHA);
            retorno = true;
        }

        return retorno;
    }

    /**
     * Valida los campos correspondiente al campo enfermedad.
     *
     * @return true si los campos estan listos para cargarse, false en caso
     * contrario
     */
    private boolean validarCampoEnfermedad() {
        boolean retorno;

        if (!CapaValidacion.validarCampoObligatorio(enfermedad.getText())) {
            botonEnfermedad.setForeground(
                    Fuente.COLOR_ERROR);
            botonEnfermedad.setToolTipText(
                    InformeError.
                    INFORME_ERROR_ENFERMEDAD_AMBULATORIO_NOMBRE_CIE9M_ENFERMEDAD_SELECCION_BOTON);
            retorno = false;
        } else {
            botonEnfermedad.setForeground(Fuente.COLOR_NORMAL);
            botonEnfermedad.setToolTipText(null);
            retorno = true;
        }

        return retorno;
    }

    public String getInformacionComplementariaEnfermedad() {
        return informacionComplementariaEnfermedad.getText();
    }

    public String getOtrosAntecedentesEnfermedad() {
        return otrosAntecedentesEnfermedad.getText();
    }

    public String getParentezcoEnfermedad() {
        if(parentezcoEnfermedad.getSelectedIndex() > -1) {
            return parentezcoEnfermedad.getSelectedItem().toString();
        } else {
            return "";
        }
    }

    public Date getFechaEnfermedad() {
        return fechaEnfermedad.getDate();
    }

    public Cie9mc getCie9mcSeleccionado() {
        return cie9mcSeleccionado;
    }

    /**
     * Setea en cada componente del JDialog los eventos que capturarán la tecla
     * enter y escape.
     */
    private void setearEventosQueCapturanTeclaEnterYEscape() {
        //Declaración del evento a capturar
        KeyListener keyListenerEscape = new KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
                    cerrarVentana();
                }
            }
        };
        //Setear eventos
        ((IDateEditor) fechaEnfermedad.getDateEditor()).
                getUiComponent().addKeyListener(keyListenerEscape);
        parentezcoEnfermedad.addKeyListener(keyListenerEscape);
        informacionComplementariaEnfermedad.addKeyListener(keyListenerEscape);
        otrosAntecedentesEnfermedad.addKeyListener(keyListenerEscape);
        botonEnfermedad.addKeyListener(keyListenerEscape);
        botonQuitarEpisodioEnfermedad.addKeyListener(keyListenerEscape);
        botonVolver.addKeyListener(keyListenerEscape);
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton botonEnfermedad;
    private javax.swing.JButton botonQuitarEpisodioEnfermedad;
    private javax.swing.JButton botonVolver;
    private javax.swing.JLabel enfermedad;
    private com.toedter.calendar.JDateChooser fechaEnfermedad;
    private javax.swing.JTextArea informacionComplementariaEnfermedad;
    private javax.swing.JScrollPane informacionComplementariaEnfermedadScrollPane;
    private javax.swing.JTextArea otrosAntecedentesEnfermedad;
    private javax.swing.JScrollPane otrosAntecedentesEnfermedadScrollPane;
    private javax.swing.JComboBox parentezcoEnfermedad;
    private javax.swing.JSeparator separadorEnfermedad;
    private javax.swing.JLabel textoFechaEnfermedad;
    private javax.swing.JLabel textoInformacionComplementariaEnfermedad;
    private javax.swing.JLabel textoOtrosAntecedentesFamiliar;
    private javax.swing.JLabel textoParentezcoEnfermedad;
    // End of variables declaration//GEN-END:variables
    private Cie9mc cie9mcSeleccionado;
}